# Make LaTeX chunk for Table 1

# Load Models and Store AUCs
countries <- c('indo', 'colo')
dvs <- c("any", "high", "spike")
algos <- c('lasso', 'rf', 'gbm', 
           'nn', 'ebma')

auc_array <- array(NA,
                   dim = c(length(countries),
                           length(dvs),
                           length(algos)),
                   dimnames = list(countries,
                                   dvs,
                                   algos))
for (country in countries) {
  for (algo in algos) {
    modelname = algo
    for (dv in dvs) {
      filename <- paste(modeldir,"/",
                    country,
                    "_",algo,"_",
                    dv,
                    "_full.RData",
                    sep = "")
      load(filename)
      aucs_by_year = c()

      for (i in 1:length(get(paste(modelname,".results",sep="")))) {
          predictions <- as.vector(get(paste(modelname,".results",sep=""))[[i]]$fit.oos)
          realizations <- as.vector(get(paste(modelname,".results",sep=""))[[i]]$actual.oos)
          aucs_by_year <- c(aucs_by_year,
                            roc(response = realizations,
                                predictor = predictions)[['auc']])
      }
      auc_array[country, dv, algo] <- mean(aucs_by_year)
    }
  }
}


# Build Table with Labels
country.labels <- c(indo='Indonesia (social conflict, 2008-2014)',
                    colo='Colombia (attacks and clashes, 1998-2005)')
outcome.labels <- c(any="Any violent event",
                    high="$\\ge$ 5 violent events",
                    spike="$\\ge$ 1 s.d. increase in events")
model.labels <- c(lasso='LASSO',
                  rf='Random\\\\Forest',
                  gbm='Adaptive\\\\Boosting',
                  nn='Neural\\\\Network',
                  ebma='EBMA')

table <- auc_array
dimnames(table)[[1]] <- country.labels[dimnames(table)[[1]]]
dimnames(table)[[2]] <- outcome.labels[dimnames(table)[[2]]]
dimnames(table)[[3]] <- model.labels[dimnames(table)[[3]]]

# Print to Latex
print.texfragment(table = table,
                  filepath = "tables",
                  file = "table_1")

